\title{The IGES \\ (Initial Graphics Exchange Specification)\\ File Format Specification}

\author{Kasper L. Gammeltoft}

\maketitle

*IGES is a file format supported by the Eclipse Advanced Visualization
Project (EAVP) for visualizing complex geometries.

\section*{What is IGES}\label{what-is-iges}

The \href{https://en.wikipedia.org/wiki/IGES}{Initial Graphics Exchange
Specification} (IGES) outlines a file format for the transfer of
geometry data and CAD models. It is an older specification, and was most
recently published as version 6
\href{https://filemonger.com/specs/igs/devdept.com/version6.pdf}{here}.
It can be used to represent both Boundary-Representation (B-Rep) and
Constructive Solid Geometry (CSG) geometries, as well as two dimensional
CAD diagrams.

\section*{File Format}\label{file-format}

The file is an ASCII text based format, having each line be exactly 80
characters long. As explained in the Wikipedia article on
\href{https://en.wikipedia.org/wiki/IGES}{IGES}, the file is split into
five sections, denoted by the specific upper case letter in the 73rd
column. Those sections are Start (S), Global (G), Data Entry (D),
Parameter Data (P), and Terminate (T) sections. The Data Entry and
Parameter Data sections are commonly abbreviated DE and PD,
respectively.

\section*{File Header (Start and Global
Sections}\label{file-header-start-and-global-sections}

The Start and Global sections contain basic information about the name
of the file and its source, the delimiters for the Parameter Data
section, the author of the file, and other general information. The
start field contains human readable descriptions of the file, and my
have any characters in columns 1-72, with the line ending with the
section header and section line number. There must be at least 1 line of
the Start section. The global section contains preprocessor data. It
also must be present in the file and end with the G000000\# format. For
example, here is the Start and Global sections from the example document
on Wikipedia:

\begin{Verbatim}
                                                                        S      1
1H,,1H;,4HSLOT,37H$1$DUA2:[IGESLIB.BDRAFT.B2I]SLOT.IGS;,                G      1
17HBravo3 BravoDRAFT,31HBravo3->IGES V3.002 (02-Oct-87),32,38,6,38,15,  G      2
4HSLOT,1.,1,4HINCH,8,0.08,13H871006.192927,1.E-06,6.,                   G      3
31HD. A. Harrod, Tel. 313/995-6333,24HAPPLICON - Ann Arbor, MI,4,0;     G      4
\end{Verbatim}

Note that the strings are expressed in Hollerith format, meaning that
every string has the number of characters it contains followed by an H
directly preceding it. For example, the string IGES would be 4HIGES.

\section*{File Data (DE and PD
Sections)}\label{file-data-de-and-pd-sections}

The Data Entry and Parameter Data sections contain the information on
the basic data of the IGES file format: it's entities. There are around
150 different defined entities in IGES (including differing `forms' of
some entity types). We will focus on the more common and geometry
centered entities. An entity is described in the Data Entry section as
shown here:

\begin{Verbatim}
     116       1       0       1       0       0       0       0       1D      1
     116       1       5       1       0                               0D      2
\end{Verbatim}

\paragraph{Data Entry Section}\label{data-entry-section} \\
First, the file lists all of the entities it contains in the Data entry
section. This section is specified by a D in the 73rd column and lists
properties about the entity it describes. Each line in this section is
split into 10 8 character fields, and each entity is given two lines of
the section. This indicates that every entity has 20 fields in the Data
Entry section, which are usually right justified. These fields map to
the following properties:

\begin{table}[H]
  \tiny
  \centering
    \begin{tabular}{|*{10}{p{1cm}|}}
      \hline
      Col  1-8 & Col  9-16 & Col 17-24 & Col 25-32 & Col 33-40 & Col 41-48 & Col
      49-56 & Col 57-64 & Col 65-72 & Col 73-80 \\ \hline
      Entity Type & PD pointer & Structure & Line Font Pattern & Level & View
      & Transformation matrix pointer & Label Display Associativity & Status
      Number & Section Code and Sequence Number \\ \hline
      Entity Type & Line Weight Number & Color Number & Parameter Line Count &
      Form Number & Reserved & Reserved & Entity Label & Entity Subscript
      Number & Section Code and Sequence Number \\ \hline
    \end{tabular}
\end{table}

These fields indicate the following properties about the entity being
declared:

\begin{itemize}
\itemsep1pt\parskip0pt\parsep0pt
\item
  \textbf{Entity Type} This is the type of entity being described. For
  example, 116 describes a Point entity.
\item
  \textbf{PD pointer} This gives the location for this entities data in
  the Parameter Data section. This location is simply the line number
  inside the PD section that has the first line of this entity data.
\item
  \textbf{Structure} Zero or pointer to definition entity. Not
  applicable for most entities
\item
  \textbf{Line Font Pattern} Number or pointer to line font pattern
  entity. Number signifies:

  \begin{itemize}
  \itemsep1pt\parskip0pt\parsep0pt
  \item
    0 No pattern specified (default)
  \item
    1 Solid
  \item
    2 Dashed
  \item
    3 Phantom
  \item
    4 Centerline
  \item
    5 Dotted
  \end{itemize}
\item
  \textbf{Level} Specifies levels to be associated with this entity.
  Allows entity to appear on more than one level
\item
  \textbf{View} Specifies viewing options. These are:
\end{itemize}

0 Indicates equal visibility and characteristics in all views. Default
Pointer to the View entity (Type 410) that it can be viewed from
Reference a View Visible Associativity entity (Type 402, Form 3)

\begin{itemize}
\itemsep1pt\parskip0pt\parsep0pt
\item
  \textbf{Transformation Matrix pointer} References a transformation
  matrix entity (Type 124) or is zero by default (no transformation)
\item
  '''Label Display Associativity''' References a Label Display
  Associativity (Type 402, Form 5) which defines how the entity label
  appears.
\item
  \textbf{Status Number} Contains four sections of two numbers. 1-2:
  Blank status. Either 00 for normal or 01 for blanked. 3-4: Subordinate
  entity switch: is 00 for independent, 01 for physically dependent, 02
  for logically dependent, and 03 for both. 5-6: Entity Use flag: is
  either 00 for Geometry, 01 for annotation, 02 for definition, 03 for
  Other, 04 for Logical, 05 for 2D parametric, and 06 for Construction
  geometry. Finally, 7-8 is the hierarchy, where 00 indicates global top
  down (use this entity's characteristics), 01 is global defer(do not
  use this entity's characteristics), and 02 is use hierarchy
  property(use Hierarchy Entity (Type 406, Form 10)to determine
  characteristics of hierarchical grouping).
\item
  \textbf{Sequence Number} Specified by D\#, where \# is the line number
  for this section (not from the top of the file). This is also used to
  point to this Data Entry entity.
\item
  \textbf{Entity Type} See above- it is specified twice per entity
  listing
\item
  \textbf{Line Weight Number} Specifies thickness when displaying
  entity. Smallest is 1, 0 is default
\item
  \textbf{Color Number} Specifies the entity color. Allowed integer
  values are:

  \begin{itemize}
  \itemsep1pt\parskip0pt\parsep0pt
  \item
    0 No color (default)
  \item
    1 Black
  \item
    2 Red
  \item
    3 Green
  \item
    4 Blue
  \item
    5 Yellow
  \item
    6 Magenta
  \item
    7 Cyan
  \item
    8 White
  \end{itemize}
\item
  \textbf{Parameter Line Count Number} Specifies the number of lines
  this entity takes up in the Parameter Data Section
\item
  \textbf{Form Number} Indicates the form, or the representation of this
  entity. Changes how the parameter data is interpreted. Default is 0
\item
  \textbf{Reserved Field} Not used
\item
  \textbf{Reserved Field} Not used
\item
  \textbf{Entity Label} Application specified identifier- right
  justified
\item
  \textbf{Subscript Number} Numeric qualifier for the entity label. Both
  together form a unique identifier for the entity
\item
  \textbf{Sequence Number} See above. This will be D\#+1, as each entity
  is specified on two lines.
\end{itemize}

\paragraph{Parameter Data Section}\label{parameter-data-section}\\
The Parameter Data section comes right after the Data Entries, and lists
the data for each respective entry. A typical entry looks something like
this:
\begin{Verbatim}
126,1,1,1,0,1,0,-5.,-5.,5.,5.,1.,1.,10.,0.,0.,10.,10.,0.,-5.,5.,       3P      3
0.,0.,1.;                                                              3P      4
\end{Verbatim}

Note the corresponding Data Entry:

\begin{Verbatim}
     126       3       0       0       0       0       0       000010501D      3
     126       0       0       2       0       0       0               0D      4
\end{Verbatim}

The parameter data section uses the delimiters specified in the Global
section to list parameters for the entity. These delimiters are usually
commas to separate parameters and a semi-colon to end the listing. The
parameter data section listing starts with the entity type followed by
parameter data in columns 4-64. Columns 65 to 72 contain the Data Entry
pointer number, which gives the index of the data entry listing for this
entity (must be an odd number, as the even numbers contain the other
half of the Data Entry). The last columns, 73-80, contain the Sequence
Number, being P\#, similar to the Data Entry section.

\section*{Entities}\label{entities}

The following entities are supported for import into ICE. Note that not
all IGES files contain only these entity specifications.

\paragraph{Circular Arc (Type 100)}\label{circular-arc-type-100}

Simple circular arc of constant radius. Usually defined with a
Transformation Matrix Entity (Type 124).

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & Z & z displacement on XT,YT plane \\ \hline
2 & REAL & X & x coordinate of center \\ \hline
3 & REAL & Y & y coordinate of center\\ \hline
4 & REAL & X1 & x coordinate of start\\ \hline
5 & REAL & Y1 & y coordinate of start\\ \hline
6 & REAL & X2 & x coordinate of end\\ \hline
7 & REAL & Y2 & y coordinate of end\\ \hline
\end{longtable}

\paragraph{Composite Curve (Type 102)}\label{composite-curve-type-102}

Groups other curves to form a composite. Can use Ordered List, Point,
Connected Point, and Parameterized Curve entities.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & N & Number of curves comprising this entity\\ \hline
2 & Pointer & DE(1) & Pointer to first curve\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
1 + N & Pointer & DE(N) & Pointer to last curve\\ \hline
\end{longtable}

\paragraph{Conic Arc (Type 104)}\label{conic-arc-type-104}

Arc defined by the equation: $Axt^2 + Bxtyt + Cyt^2 + Dxt + Eyt + F
= 0$, with a Transformation Matrix (Entity 124). Can define an ellipse,
parabola, or hyperbola.

The definitions of the terms ellipse, parabola, and hyperbola are given
in terms of the quantities $Q_1$,$Q_2$, and $Q_3$. These quantities are:

$Q_1 = $ \begin{vmatrix}
 $A$ & \frac{B}{2} & \frac{D}{2} \\[0.3em]
  \frac{B}{2} & $C$ & \frac{E}{2} \\[0.3em]
  \frac{D}{2} & \frac{E}{2} & $F$ \\
\end{vmatrix}

$Q_2 = $ \begin{vmatrix}
  $A$ & \frac{B}{2} \\[0.3em]
  \frac{B}{2} & $C$ \\
\end{vmatrix}

$Q_3 = A + C$

A parent conic curve is:

\begin{itemize}
\itemsep1pt\parskip0pt\parsep0pt
\item
  An \textbf{ellipse} if $Q_2 > 0$ and $ Q_1Q_3 < 0$.
\item
  A \textbf{hyperbola} if $Q_2 < 0$ and $Q_1 \neq 0$.
\item
  A \textbf{parabola} if $Q_2 = 0$ and $Q1 \neq 0$.
\end{itemize}

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & A & coefficient of xt\^{}2\\ \hline
2 & REAL & B & coefficient of xtyt\\ \hline
3 & REAL & C & coefficient of yt\^{}2\\ \hline
4 & REAL & D & coefficient of xt\\ \hline
5 & REAL & E & coefficient of yt\\ \hline
6 & REAL & F & scalar coefficient\\ \hline
7 & REAL & X1 & x coordinate of start point\\ \hline
8 & REAL & Y1 & y coordinate of start point\\ \hline
9 & REAL & Z1 & z coordinate of start point\\ \hline
10 & REAL & X2 & x coordinate of end point\\ \hline
11 & REAL & Y2 & y coordinate of end point\\ \hline
12 & REAL & Z2 & z coordinate of end point\\ \hline
\end{longtable}

\paragraph{Copious Data (Type 106)}\label{copious-data-type-106}

The Copious Data entity defines a set of points. There are three
different interpretations, depending on first parameter. It is an INT,
and is either 1,2, or 3. 1 Indicates that the points are couples(x,y), 2
indicates the points are triples (x,y,z), and 3 indicates the points are
sextuplets(x,y,z,i,j,k). If the format is 1, then the first parameter
after gives the common Z value for the ordered xy pairs.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Type & Either 1,2, or 3\\ \hline
2 & REAL & Z / XP1 & \vtop{\hbox{\strut If 1 is above, common
z}\hbox{\strut  if 2 or 3, first value}}\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
N & REAL & YPN / ZPN / KPN & Last value for last point\\ \hline
\end{longtable}


\paragraph{Plane (Type 108)}\label{plane-type-108}

Defines a plane by Ax + By +Cz = D, and a curve pointer that gives the
plane its bounds. Also gives a display symbol at a specified vertex and
with a specified size.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & A & coefficient of x\\ \hline
2 & REAL & B & coefficient of y\\ \hline
3 & REAL & C & coefficient of z\\ \hline
4 & REAL & D & scalar coefficient\\ \hline
5 & Pointer & Bounds & Pointer to bounding curve\\ \hline
6 & REAL & X & x coordinate of display symbol\\ \hline
7 & REAL & Y & y coordinate of display symbol\\ \hline
8 & REAL & Z & z coordinate of display symbol\\ \hline
11 & REAL & Size & size of display symbol\\ \hline
\end{longtable}


\paragraph{Line (Type 110)}\label{line-type-110}

Defines a line using an end point and a start point

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & X1 & x coordinate of start point\\ \hline
2 & REAL & Y1 & y coordinate of start point\\ \hline
3 & REAL & Z1 & z coordinate of start point\\ \hline
4 & REAL & X2 & x coordinate of end point\\ \hline
5 & REAL & Y2 & y coordinate of end point\\ \hline
6 & REAL & Z2 & z coordinate of end point\\ \hline
\end{longtable}


\paragraph{Parametric Spline Curve (Type
112)}\label{parametric-spline-curve-type-112}

Defines a curve as a series of parametric polynomials, given as Ax(i) +
sBx(i) + s\^{}2 Cx(i) + s\^{}3 Dx(i), for the x component in the i'th
section. The same function is used for y and z.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  \hline
  \endfoot

  \endlastfoot
1 & INT & Type & \vtop{\hbox{\strut Spline type:}\hbox{\strut 
1 = Linear}\hbox{\strut  2 = Quadratic}\hbox{\strut  3 = Cubic}\hbox{\strut 
4 = Wilson-Fowler}\hbox{\strut  5 = Modified Wilson-Fowler}\hbox{\strut 
6 = B-spline}}\\ \hline
2 & INT & K & \vtop{\hbox{\strut Degree of continuity}\hbox{\strut 
0 = Curvature}\hbox{\strut  1 = Slope}\hbox{\strut  2 = Both}}\\ \hline
3 & INT & Dim & Dimensions (3 or 2)\\ \hline
4 & INT & N & Number of segments\\ \hline
5 & REAL & T1 & First break point\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5+N & REAL & TN & Last break point\\ \hline
6+N & REAL & AX1 & X coordinate polynomial\\ \hline
7+N & REAL & BX1 &\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5+13N & REAL & DZN & Last z coordinate polynomial\\ \hline
6+13N & REAL & XN & Last x coordinate\\ \hline
7+13N & REAL & XN' & Last n curve x derivative\\ \hline
8+13N & REAL & XN''/2! & Second xn derivative\\ \hline
9+13N & REAL & XN'''/3! & Third xn derivative\\ \hline
10+13N & REAL & YN & Last y coordinate\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
17+13N & REAL & ZN'''/3! & Third zn derivative\\ \hline
\end{longtable}

\paragraph{Parametric Spline Surface (Type
114)}\label{parametric-spline-surface-type-114}

Defines a surface as a series of parametric surfaces, splitting them
into a grid (i by j). They are described by the equation Ax(i,j) +
sBx(i,j) + s\^{}2 Cx(i,j) + s\^{}3 Dx(i,j) + tEx(i,j) + tsEx(i,j) +
ts\^{}2 Fx(i,j) + ts\^{}3 Gx(i,j) + t\^{}2 Kx(i,j) + t\^{}2 s Lx(i,j) +
t\^{}2 s\^{}2 Mx(i,j) + t\^{}2 s\^{}3 Nx(i,j) + t\^{}3 Px(i,j) + t\^{}3
s Qx(i,j) + t\^{}3 s\^{}2 Rx(i,j) + t\^{}3 s\^{}2 Sx(i,j). Note that
that equation is the description of the X element in the i,j section of
the spline surface.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Type & \vtop{\hbox{\strut Spline type:}\hbox{\strut 
1 = Linear}\hbox{\strut  2 = Quadratic}\hbox{\strut  3 = Cubic}\hbox{\strut 
4 = Wilson-Fowler}\hbox{\strut  5 = Modified Wilson-Fowler}\hbox{\strut 
6 = B-spline}}\\ \hline
2 & INT & K & \vtop{\hbox{\strut Patch type}\hbox{\strut 
0 = Unspecified}\hbox{\strut  1 = Cartesian Product}}\\ \hline
3 & INT & M & Number of u segments\\ \hline
4 & INT & N & Number of v segments\\ \hline
5 & REAL & TU1 & First break point in u\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5+M & REAL & TUM & Last break point in u\\ \hline
6+M & REAL & TV1 & First break point in v\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5+M+N & REAL & TVN & Last break point in v\\ \hline
7+M+N & REAL & Ax(1,1) & First coefficient for i,j = 1,1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
... & REAL & Sz(M,N) & Last coefficient for i,j = M,N\\ \hline
\end{longtable}

\paragraph{Point (Type 116)}\label{point-type-116}

Defines a point in 3D space.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & X & x coordinate of point\\ \hline
2 & REAL & Y & y coordinate of point\\ \hline
3 & REAL & Z & z coordinate of point\\ \hline
4 & Pointer & P & Pointer to sub-figure entity, specifies display \\ \hline
\end{longtable}

\paragraph{Ruled Surface (Type 118)}\label{ruled-surface-type-118}

This is a surface formed by sweeping over an area between defined
curves. The sweep can be done by lines connecting points of equal arc
length (Form 0) or equal parametric values (Form1). Valid curves would
be points, lines, circles, conics, parametric splines, rational
B-splines, composite curves, or any parametric curves.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & P1 & pointer to first curve\\ \hline
2 & Pointer & P2 & pointer to second curve\\ \hline
3 & INT & DirFlag & \vtop{\hbox{\strut Direction. 0 = First to first, last
to last}\hbox{\strut  1 = First to last, last to first}}\\ \hline
4 & INT & DevFlag & \vtop{\hbox{\strut Developable: 0 = Possibly
not}\hbox{\strut  1 = Yes}}\\ \hline
\end{longtable}

\paragraph{Surface of Revolution (Type
120)}\label{surface-of-revolution-type-120}

This solid is formed by rotating a bounded surface on a specified axis
and recording the area it passes through.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Axis & Pointer to Line describing axis of
rotation\\ \hline
2 & Pointer & Surface & Pointer to generatrix entity\\ \hline
3 & REAL & SA & Start angle (Rad)\\ \hline
4 & REAL & EA & End angle (Rad)\\ \hline
\end{longtable}

\paragraph{Tabulated Cylinder (Type
122)}\label{tabulated-cylinder-type-122}

Formed by moving a line segment parallel to itself along a curve called
the directrix. Curve may be any of: a line, a circular arc, a conic arc,
a parametric spline curve, or a rational B-spline curve.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Curve & Pointer to directrix\\ \hline
2 & REAL & Lx & x coordinate of line end\\ \hline
3 & REAL & Ly & y coordinate of line end\\ \hline
4 & REAL & Lz & z coordinate of line end\\ \hline
\end{longtable}

\paragraph{Direction (Type 123)}\label{direction-type-123}

Gives a direction in 3 Dimensions, where $x^2 + y^2 + z^2
> 0$

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & X1 & x component\\ \hline
2 & REAL & Y1 & y component\\ \hline
3 & REAL & Z1 & z component\\ \hline
\end{longtable}

\paragraph{Transformation Matrix (Type
124)}\label{transformation-matrix-type-124}

Transforms entities by matrix multiplication and vector addition to give
a translation, as shown below:

$R = $ \begin{bmatrix}
  $R_{11}$ $R_{12}$ $R_{13}$ \\
  $R_{21}$ $R_{22}$ $R_{23}$ \\
  $R_{31}$ $R_{32}$ $R_{33}$ \\
\end{bmatrix}

$T =$ \begin{bmatrix}
  $T_1$ \\
  $T_2$ \\
  $T_3$ \\
\end{bmatrix}

$ET = R*E + T$, where $E$ is the entity coordinate in Euclidean 3D space. 

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & R11 & First row\\ \hline
2 & REAL & R12 & ..\\ \hline
3 & REAL & R13 & ..\\ \hline
4 & REAL & T1 & First T vector value\\ \hline
5 & REAL & R21 & Second row..\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
12 & REAL & T3 & Third T vector value\\ \hline
\end{longtable}

\paragraph{Rational B-Spline Curve (Type
126)}\label{rational-b-spline-curve-type-126}

Composes analytic curves. Form: 0 = Determined by data 1 = Line 2 = Circular
arc 3 = Elliptical arc 4 = Parabolic arc 5 = Hyperbolic arc

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot
1 & INT & K & Upper index of sum\\ \hline
2 & INT & M & Degree of basis functions\\ \hline
3 & INT & Flag1 & 0 = nonplanar, 1 = planar\\ \hline
4 & INT & Flag2 & 0 = open curve, 1 = closed curve\\ \hline
5 & INT & Flag3 & 0 = rational, 1 = polynomial\\ \hline
6 & INT & Flag4 & 0 = nonperiodic , 1 = periodic\\ \hline
7 & REAL & T1 & First value of knot sequence\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
8 + K + M & REAL & T(1+K+M) & Last value of knot sequence\\ \hline
9 + K + M & REAL & W0 & First weight\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
9 + 2K + M & REAL & WK & Last weight\\ \hline
10 + 2K + M & REAL & X0 & x of first control point\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
12 + 5*K + M & REAL & ZK & z of last control point\\ \hline
13 + 5*K + M & REAL & V0 & Start parameter value\\ \hline
14 + 5*K + M & REAL & V1 & End parameter value\\ \hline
14 + 5*K + M & REAL & XN & \vtop{\hbox{\strut Unit normal x (if planar)}\hbox{\strut Composes a series of curves}}\\ \hline
16 + 5*K + M & REAL & ZN & Unit normal z (if planar)\\ \hline
\end{longtable}

\paragraph{Rational B-Spline Surface (Type
128)}\label{rational-b-spline-surface-type-128}

This is a surface entity defined by multiple surfaces. The form number
describes the general type: 0 = determined from data, 1 = Plane, 2 = Right
circular cylinder, 3 = Cone, 4 = Sphere, 5 = Torus, 6 = Surface of revolution,
7 = Tabulated cylinder, 8 = Ruled surface, 9 = General quadratic surface.


\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot
1 & INT & K2 & Upper index of first sum\\ \hline
2 & INT & K1 & Upper index of second sum\\ \hline
3 & INT & M1 & Degree of first basis functions\\ \hline
4 & INT & M2 & Degree of second basis functions\\ \hline
5 & INT & Flag1 & \vtop{\hbox{\strut 0 = closed in first direction}\hbox{\strut 1 = not closed}}\\ \hline
6 & INT & Flag2 & \vtop{\hbox{\strut 0 = closed ins second direction}\hbox{\strut 1 = not closed}}\\ \hline
7 & INT & Flag3 & \vtop{\hbox{\strut 0 = rational}\hbox{\strut 1 = polynomial}}\\ \hline
8 & INT & Flag4 & \vtop{\hbox{\strut 0 = nonperiodic in first direction}\hbox{\strut 1 = periodic}}\\ \hline
9 & INT & Flag5 & \vtop{\hbox{\strut 0 = nonperiodic in second direction}\hbox{\strut 1 = periodic}}\\ \hline
10 & REAL & T1(0) & First value of first knot sequence\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
11 + K1 + M1 & REAL & T1(1 + K1 + M1) & Last value of first knot
sequence\\ \hline
12 + K1 + M1 & REAL & T2(0) & First value of second knot
sequence\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
\vtop{\hbox{\strut 13 + K1 + M1}\hbox{\strut + K2 + M2}}
& REAL & T2(1 + K2 + M2) & Last value of second knot
sequence\\ \hline
\vtop{\hbox{\strut 14 + K1 + M1}\hbox{\strut + K2 + M2}}
& REAL & W(0,0) & First weight\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
\vtop{\hbox{\strut 14 + K1 + K2}\hbox{\strut + M1 + M2 +}\hbox{\strut (1 + K1)(1 + K2)}}
& REAL & W(K1,K2) & Last weight\\ \hline
\^{} + 1 & REAL & X(0,0) & x of first control point\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
\vtop{\hbox{\strut \^{} + 9 + 3*}\hbox{\strut (1+K1)(1+K2)}}
& REAL & K(K1)(K2) & z of last control
point\\ \hline
\^{} + 1 & REAL & U0 & Start first parameter value\\ \hline
\^{} + 1 & REAL & U1 & End first parameter value\\ \hline
\^{} + 1 & REAL & V0 & Start second parameter value\\ \hline
\^{} + 1 & REAL & V1 & End second parameter value\\ \hline
\end{longtable}

\paragraph{Offset Curve (Type 130)}\label{offset-curve-type-130}

Contains the data to determine curve offsets

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Curve & Curve to be offset\\ \hline
2 & INT & Flag1 & \vtop{\hbox{\strut Offset distance}\hbox{\strut 
1 = Single value offset}\hbox{\strut  2 = Offset distance varying
linearly}\hbox{\strut  3 = Offset distance as a function}}\\ \hline
3 & Pointer & Offset & Pointer to curve describing offset
(Flag1 = 3)\\ \hline
4 & INT & Dim & Coordinate of offset curve to use
(Flag1 = 3)\\ \hline
5 & INT & Flag2 & \vtop{\hbox{\strut Tapered offset type:}\hbox{\strut 
1 = Function of arc length}\hbox{\strut  2 = Function of parameter (Flag1 = 2,
3)}}\\ \hline
6 & REAL & D1 & First offset distance(Flag1 = 1, 2)\\ \hline
7 & REAL & TD1 & Arc length/parameter value (Flag1 = 2)\\ \hline
8 & REAL & D2 & Second offset distance\\ \hline
9 & REAL & TD2 & Second arc length/parameter value
(Flag1 = 2)\\ \hline
10 & REAL & X & X value of normal vector\\ \hline
11 & REAL & Y & Y value of normal vector\\ \hline
12 & REAL & Z & Z value of normal vector\\ \hline
13 & REAL & TT1 & Offset curve start parameter value\\ \hline
14 & REAL & TT2 & Offset curve end parameter value\\ \hline
\end{longtable}

\paragraph{Offset Surface (Type 140)}\label{offset-surface-type-140}

Gives the data necessary to calculate the offset surface from a
particular surface.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & NX & X coordinate of offset indicator\\ \hline
2 & REAL & NY & Y coordinate of offset indicator\\ \hline
3 & REAL & Nz & z coordinate of offset indicator\\ \hline
4 & REAL & D & \vtop{\hbox{\strut Distance by which surface is
offset}\hbox{\strut  from indicator}}\\ \hline
5 & Pointer & Surface & Pointer to surface to be offset\\ \hline
\end{longtable}

\paragraph{Boundary (Type 141)}\label{boundary-type-141}

Identifies a surface boundary consisting of curves lying on a surface.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Type & \vtop{\hbox{\strut The type of boundary being
represented}\hbox{\strut  0 = Entities reference model space
curves}\hbox{\strut  1 = Entities reference model space curves
and}\hbox{\strut  associated parameter space curves}}\\ \hline
2 & INT & Pref & \vtop{\hbox{\strut Preferred representation of trimming
curves.}\hbox{\strut  0  =  Unspecified}\hbox{\strut  1 = Model
Space}\hbox{\strut  2 = Parameter Space}\hbox{\strut  3 =
Equal}}\\ \hline
3 & Pointer & Surface & The untrimmed surface to be
bounded\\ \hline
4 & INT & N & Number of curves in boundary\\ \hline
5 & Pointer & MC1 & Pointer to first model space curve\\ \hline
6 & INT & Flag 1 & \vtop{\hbox{\strut Orientation flag: 0 = No
reversal}\hbox{\strut  1 = Reversal needed}}\\ \hline
7 & INT & K1 & How many parameter curves for this model
curve\\ \hline
8 & Pointer & PC(1,1) & First parameter curve for model curve
1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
7 + K1 & Pointer & PC(1,K1) & Last parameter curve for model curve
1\\ \hline
8 + K1 & Pointer & MC2 & Model curve 2\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
\vtop{\hbox{\strut 11 + 3N}\hbox{\strut + Sum(K(N))}} & Pointer & PC(N,KN) & Last parameter curve for model
curve N\\ \hline
\end{longtable}

\paragraph{Curve on a Parametric Surface (Type
142)}\label{curve-on-a-parametric-surface-type-142}

Associates a curve and a surface, gives how a curve lies on the
specified surface.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Flag1 & \vtop{\hbox{\strut Indicates how curve was
created:}\hbox{\strut  0 = Unspecified}\hbox{\strut  1 =
Projection}\hbox{\strut  2 = Intersection of surfaces}\hbox{\strut  3 =
Isoparametric curve}}\\ \hline
2 & Pointer & Surface & Points to surface curve lies on\\ \hline
3 & Pointer & Curve & Definition of curve\\ \hline
4 & Pointer & Mapping & \vtop{\hbox{\strut Entity that provides}\hbox{\strut mapping from curve to surface}}\\ \hline
5 & INT & Representation & \vtop{\hbox{\strut Preferred representation
of curve:}\hbox{\strut  0 = Unspecified}\hbox{\strut  1 =
S(B(t))}\hbox{\strut  2 = C(t)}\hbox{\strut  3 = Both
equal}}\\ \hline
\end{longtable}

\paragraph{Bounded Surface (Type 143)}\label{bounded-surface-type-143}

Represents a surface bounded by Boundary Entities.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Type & \vtop{\hbox{\strut The type of boundary being
represented}\hbox{\strut  0 = Entities reference model space
curves}\hbox{\strut  1 = Entities reference model space curves
and}\hbox{\strut  associated parameter space curves}}\\ \hline
2 & Pointer & Surface & Points to unbounded surface\\ \hline
3 & INT & N & Number of Boundary entities\\ \hline
4 & Pointer & B1 & Pointer to first boundary entity\\ \hline
3 + N & Pointer & BN & Pointer to last boundary entity\\ \hline
\end{longtable}

\paragraph{Trimmed Surface (Type 144)}\label{trimmed-surface-type-144}

Describes a surface trimmed by a boundary consisting of boundary Curves.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Surface & Entity to be trimmed\\ \hline
2 & INT & Flag & \vtop{\hbox{\strut 0 = Boundary is boundary of surface}\hbox{\strut 1 = otherwise}}\\ \hline
3 & INT & N & \vtop{\hbox{\strut Number of closed curves that}\hbox{\strut make up inner boundary}}\\ \hline
4 & Pointer & OuterBound & \vtop{\hbox{\strut Pointer to Curve on
Parametric Surface}\hbox{\strut  (Type 142) entity that is outer
bound}}\\ \hline
5 & Pointer & Inner1 & Pointer to first inner curve
boundary\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5 + N & Pointer & InnerN & Pointer to last inner curve
boundary\\ \hline
\end{longtable}

\paragraph{Block (Type 150)}\label{block-type-150}

Defines a CSG Block object.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & LX & Side length along x axis\\ \hline
2 & REAL & LY & Side length along y axis\\ \hline
3 & REAL & LZ & Side length along z axis\\ \hline
4 & REAL & X & Corner x coordinate\\ \hline
5 & REAL & Y & Corner y coordinate\\ \hline
6 & REAL & Z & Corner z coordinate\\ \hline
7 & REAL & Xi & Unit vector along x direction\\ \hline
8 & REAL & Xj &\\ \hline
9 & REAL & Xk &\\ \hline
10 & REAL & Zi & Unit vector along z direction\\ \hline
11 & REAL & Zj &\\ \hline
12 & REAL & Zk &\\ \hline
\end{longtable}

\paragraph{Right Angular Wedge (Type
152)}\label{right-angular-wedge-type-152}

Defines a CSG Wedge

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & LX & Size along x axis\\ \hline
2 & REAL & LY & Size along y axis\\ \hline
3 & REAL & LZ & Size along z axis\\ \hline
4 & REAL & TLX & Distance from local x axis LY away\\ \hline
5 & REAL & X & Coordinates of corner\\ \hline
6 & REAL & Y &\\ \hline
7 & REAL & Z &\\ \hline
8 & REAL & Xi & Normal vector for x axis\\ \hline
9 & REAL & Xj &\\ \hline
10 & REAL & Xk &\\ \hline
11 & REAL & Zi & Normal vector for z axis\\ \hline
12 & REAL & Zj &\\ \hline
13 & REAL & Zk &\\ \hline
\\ \hline
\end{longtable}

\paragraph{Right Circular Cylinder (Type
154)}\label{right-circular-cylinder-type-154}

Defines a CSG cylinder

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfootd
1 & REAL & H & Height\\ \hline
2 & REAL & R & Radius\\ \hline
3 & REAL & X & X coordinate of face center\\ \hline
4 & REAL & Y & Y coordinate of face center\\ \hline
5 & REAL & Z & Z coordinate of face center\\ \hline
6 & REAL & i & Normal vector along cylinder axis\\ \hline
7 & REAL & j &\\ \hline
8 & REAL & k &\\ \hline
\end{longtable}

\paragraph{Right Circular Cone (Type
156)}\label{right-circular-cone-type-156}

Defines a CSG Cone primitive object.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfootd
1 & REAL & H & Height\\ \hline
2 & REAL & R1 & Larger radius\\ \hline
3 & REAL & R2 & Smaller radius\\ \hline
4 & REAL & X & X coordinate of larger face center\\ \hline
5 & REAL & Y & Y coordinate of larger face center\\ \hline
6 & REAL & Z & Z coordinate of larger face center\\ \hline
4 & REAL & i & \vtop{\hbox{\strut Normal vector along axis}\hbox{\strut 
(from larger face toward smaller)}}\\ \hline
5 & REAL & j &\\ \hline
6 & REAL & k &\\ \hline
\end{longtable}

\paragraph{Sphere (Type 158)}\label{sphere-type-158}

Defines the CSG Sphere primitive type.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & R & Radius\\ \hline
2 & REAL & X & X coordinate of center\\ \hline
3 & REAL & Y & Y coordinate of center\\ \hline
4 & REAL & Z & Z coordinate of center\\ \hline
\end{longtable}

\paragraph{Torus (Type 160)}\label{torus-type-160}

Defines the CSG Torus primitive type.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & R1 & \vtop{\hbox{\strut Radius from center to middle of
loop}\hbox{\strut  (how big torus is)}}\\ \hline
2 & REAL & R2 & \vtop{\hbox{\strut Radius of loop}\hbox{\strut  (how
thick torus is)}}\\ \hline
3 & REAL & X & X coordinate of center\\ \hline
4 & REAL & Y & Y coordinate of center\\ \hline
5 & REAL & Z & Z coordinate of center\\ \hline
6 & REAL & i & Normal vector through center hole\\ \hline
7 & REAL & j &\\ \hline
8 & REAL & k &\\ \hline
\end{longtable}

\paragraph{Solid of Revolution (Type
162)}\label{solid-of-revolution-type-162}

Describes a solid that is formed by rotating a curve around an axis.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & C & Curve to revolve\\ \hline
2 & REAL & F & Fraction of full rotation (default 1)\\ \hline
3 & REAL & X & X coordinate to revolve around\\ \hline
4 & REAL & Y & Y coordinate to revolve around\\ \hline
5 & REAL & Z & Z coordinate to revolve around\\ \hline
6 & REAL & i & Vector specifying axis of revolution\\ \hline
7 & REAL & j &\\ \hline
8 & REAL & k &\\ \hline
\end{longtable}

\paragraph{Solid of Linear Extrusion (Type
164)}\label{solid-of-linear-extrusion-type-164}

Describes a solid that is formed by translating an area by a planar
curve.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & C & Closed curve to translate\\ \hline
2 & REAL & L & Length of extrusion\\ \hline
3 & REAL & i & Vector specifying direction of extrusion\\ \hline
4 & REAL & j &\\ \hline
5 & REAL & k &\\ \hline
\end{longtable}

\paragraph{Ellipsoid (Type 168)}\label{ellipsoid-type-168}

Defines the CSG Ellipsoid primitive type, defined by the curve:
$\frac{X^2}{LX^2} + \frac{Y^2}{LY^2} +\frac{Z^2}{LZ^2} = 1$

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & LX & X scaling\\ \hline
2 & REAL & LY & Y scaling\\ \hline
3 & REAL & LZ & Z scaling\\ \hline
4 & REAL & X & X coordinate of center\\ \hline
5 & REAL & Y & Y coordinate of center\\ \hline
6 & REAL & Z & Z coordinate of center\\ \hline
7 & REAL & i1 & \vtop{\hbox{\strut Unit vector along local X
axis}\hbox{\strut  (major axis)}}\\ \hline
8 & REAL & j1 &\\ \hline
9 & REAL & k1 &\\ \hline
10 & REAL & i2 & \vtop{\hbox{\strut Unit vector along local Z
axis}\hbox{\strut  (minor axis)}}\\ \hline
11 & REAL & j2 &\\ \hline
12 & REAL & k2 &\\ \hline
\end{longtable}

\paragraph{Boolean Tree (Type 180)}\label{boolean-tree-type-180}

Provides a CSG Boolean tree structure, for constructing CSG
geometries.\\The three types of operations it accepts are denoted by an
integer:\\1 = Union\\2 = Intersection\\3 = Difference\\The data is
provided in post-order notation, giving operands and operations.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & N & Number of operands + operations\\ \hline
2 & Pointer & P1 & Pointer to first operand\\ \hline
3 & Pointer & P2 & Pointer to second operand\\ \hline
4 & Pointer/INT & P3/O1 & Third operand or first
operation\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
1 + N & INT & ON & Last Operation\\ \hline
\end{longtable}

\paragraph{Manifold Solid B-Rep Object (Type
186)}\label{manifold-solid-b-rep-object-type-186}

Defines a closed, solid, finite volume in R\^{}3 by enumerating the
boundary.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Shell & Pointer to the shell entity (Type
514)\\ \hline
2 & BOOL & FLAG & \vtop{\hbox{\strut Orientation flag}\hbox{\strut True = shell agrees with faces}}\\ \hline
3 & INT & N & Number of void shells\\ \hline
4 & Pointer & VShell1 & First void shell\\ \hline
5 & BOOL & VFLAG1 & Orientation flag of VShell1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
3 + 2N & BOOL & VFLAGN & Orientation flag of VShellN\\ \hline
\end{longtable}

\paragraph{Plane Surface (Type 190)}\label{plane-surface-type-190}

The Plane Surface is given by a point on the plane and the normal. Used
by a Face entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Point & Pointer to Point Entity (Type 116)\\ \hline
2 & Pointer & Normal & Pointer to Direction Entity (Type
123)\\ \hline
3 & Pointer & Ref & \vtop{\hbox{\strut Pointer to Direction Entity (Type
123)}\hbox{\strut  Gives the reference direction}\hbox{\strut * Only for
Form 1}}\\ \hline
\end{longtable}

\paragraph{Right Circular Cylindrical Surface (Type
192)}\label{right-circular-cylindrical-surface-type-192}

Defines the surface for a right circular cylinder. Used by a Face
Entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Point & \vtop{\hbox{\strut Pointer to Point Entity (Type
116)}\hbox{\strut  Point on axis}}\\ \hline
2 & Pointer & Axis & \vtop{\hbox{\strut Pointer to Direction Entity
(Type 123)}\hbox{\strut  Axis direction}}\\ \hline
3 & REAL & R & Radius\\ \hline
4 & Pointer & Ref & \vtop{\hbox{\strut Pointer to Direction Entity (Type
123)}\hbox{\strut  Gives the reference direction}\hbox{\strut * Only for
Form 1}}\\ \hline
\end{longtable}

\paragraph{Right Circular Conical Surface (Type
194)}\label{right-circular-conical-surface-type-194}

Defines a surface as a circular cone. Used by a Face Entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Point & \vtop{\hbox{\strut Pointer to Point Entity (Type
116)}\hbox{\strut  Point on axis}}\\ \hline
2 & Pointer & Axis & \vtop{\hbox{\strut Pointer to Direction Entity
(Type 123)}\hbox{\strut  Axis direction}}\\ \hline
3 & REAL & R & Radius at Point\\ \hline
4 & REAL & ANG & Angle between axis and cone surface\\ \hline
5 & Pointer & Ref & \vtop{\hbox{\strut Pointer to Direction Entity (Type
123)}\hbox{\strut  Gives the reference direction}\hbox{\strut * Only for
Form 1}}\\ \hline
\end{longtable}

\paragraph{Spherical Surface (Type
196)}\label{spherical-surface-type-196}

Defines a surface as a sphere. Used by a Face Entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Point & \vtop{\hbox{\strut Pointer to Point Entity (Type
116)}\hbox{\strut  Center point}}\\ \hline
2 & REAL & R & Radius\\ \hline
2 & Pointer & Axis & \vtop{\hbox{\strut Pointer to Direction Entity
(Type 123)}\hbox{\strut  Axis direction}\hbox{\strut * Only for Form
1}}\\ \hline
3 & Pointer & Ref & \vtop{\hbox{\strut Pointer to Direction Entity (Type
123)}\hbox{\strut  Gives the reference direction}\hbox{\strut * Only for
Form 1}}\\ \hline
\end{longtable}

\paragraph{Toroidal Surface (Type 198)}\label{toroidal-surface-type-198}

Defines a surface as a Torus. Used by the Face Entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Point & \vtop{\hbox{\strut Pointer to Point Entity (Type
116)}\hbox{\strut  Point on axis}}\\ \hline
2 & Pointer & Axis & \vtop{\hbox{\strut Pointer to Direction Entity
(Type 123)}\hbox{\strut  Axis direction}}\\ \hline
3 & REAL & R1 & Major radius\\ \hline
4 & REAL & R2 & Minor radius\\ \hline
4 & Pointer & Ref & \vtop{\hbox{\strut Pointer to Direction Entity (Type
123)}\hbox{\strut  Gives the reference direction}\hbox{\strut * Only for
Form 1}}\\ \hline
\end{longtable}

\paragraph{Subfigure Definition (Type
308)}\label{subfigure-definition-type-308}

Combines other entity definitions into one Entity.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & Depth & Depth of subfigure (with nesting)\\ \hline
2 & String & Name & Subfigure Name\\ \hline
3 & INT & N & Number of entities in subfigure\\ \hline
4 & Pointer & E1 & Associated entity 1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
3 + N & Pointer & EN & Last associated entity\\ \hline
\end{longtable}

\paragraph{Color Definition (Type 314)}\label{color-definition-type-314}

Used to give custom colors for other entities, in RGB color space.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & REAL & RED & Red value, from 0.0 - 100.0\\ \hline
2 & REAL & GREEN & Green value, from 0.0 - 100.0\\ \hline
3 & REAL & BLUE & Blue value, from 0.0 - 100.0\\ \hline
4 & String & Name & Optional color name\\ \hline
\end{longtable}

\paragraph{Singular Subfigure Instance (Type
408)}\label{singular-subfigure-instance-type-408}

Gives the Subfigure Definition Entity a defined subfigure.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & SD & The Subfigure Definition Entity (type
308)\\ \hline
2 & REAL & X & Translation in the x direction\\ \hline
3 & REAL & Y & Translation in the y direction\\ \hline
4 & REAL & Z & Translation in the z direction\\ \hline
5 & REAL & S & Scale factor\\ \hline
\end{longtable}

\paragraph{Vertex List (Type 502 Form
1)}\label{vertex-list-type-502-form-1}

Provides a list of vertices for specifying B-Rep Geometries.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & N & Number of vertices in list\\ \hline
2 & REAL & X1 & Coordinates of first vertex\\ \hline
3 & REAL & Y1 &\\ \hline
4 & REAL & Z1 &\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
3N-1 & REAL & XN & Coordinates of last vertex\\ \hline
3N & REAL & YN &\\ \hline
3N + 1 & REAL & ZN &\\ \hline
\end{longtable}

\paragraph{Edge List (Type 504 Form 1)}\label{edge-list-type-504-form-1}

Provides a list of edges, comprised of vertices, for specifying B-Rep
Geometries.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1\textbar{}INT & N & Number of Edges in list\\ \hline
2 & Pointer & Curve1 & First model space curve\\ \hline
3 & Pointer & SVL1 & Vertex list for start vertex\\ \hline
4 & INT & S1 & Index of start vertex in SVL1\\ \hline
5 & Pointer & EVL1 & Vertex list for end vertex\\ \hline
6 & INT & E1 & Index of end vertex in EVL1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
5N-3 & Pointer & CurveN & First model space curve\\ \hline
5N-2 & Pointer & SVLN & Vertex list for start vertex\\ \hline
5N-1 & INT & SN & Index of start vertex in SVLN\\ \hline
5N & Pointer & EVLN & Vertex list for end vertex\\ \hline
5N + 1 & INT & EN & Index of end vertex in EVLN\\ \hline
\end{longtable}

\paragraph{Loop (Type 508)}\label{loop-type-508}

Defines a loop, specifying a bounded face, for B-Rep Geometries.

\begin{longtable}[H]{|c|c|c|p{4cm}|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & INT & N & Number of Edges in loop\\ \hline
2 & INT & Type1 & \vtop{\hbox{\strut Type of Edge 1}\hbox{\strut  0 =
Edge}\hbox{\strut  1 = Vertex}}\\ \hline
3 & Pointer & E1 & First vertex list or edge list\\ \hline
4 & INT & Index1 & Index of edge/vertex in E1\\ \hline
5 & BOOL & Flag1 & Orientation flag- True = Agrees with model
curve\\ \hline
6 & INT & K1 & Number of parametric space curves\\ \hline
7 & BOOL & ISO(1,1) & Isoparametric flag of first parameter space
curve\\ \hline
8 & Pointer & PSC(1,1) & First parametric space curve of
E1\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
6 + 2K1 & Pointer & PSC(1,K1) & Last parametric space curve of
E1\\ \hline
7 + 2K1 & INT & Type2 & Type of Edge 2\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
\end{longtable}

\paragraph{Face (Type 510)}\label{face-type-510}

Defines a bound portion of three dimensional space (R\^{}3) which has a
finite area. Used to construct B-Rep Geometries.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
1 & Pointer & Surface & Underlying surface\\ \hline
2 & INT & N & Number of loops\\ \hline
3 & BOOL & Flag & \vtop{\hbox{\strut Outer loop flag:}\hbox{\strut  True
indicates Loop1 is outer loop.}\hbox{\strut  False indicates no outer
loop.}}\\ \hline
4 & Pointer & Loop1 & Pointer to first loop of the face\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
3 + N & Pointer & LoopN & Pointer to last loop of the face\\ \hline
\end{longtable}

\newpage

\paragraph{Shell (Type 514)}\label{shell-type-514}

Defines edge connected sets of faces for defining B-Rep geometries.

\begin{longtable}[H]{|c|c|c|l|}
  \caption*{Parameter Data} \\

  \hline
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endfirsthead
  \hline
  
  \multicolumn{1}{|c|}{\textbf{Index in list}} & \multicolumn{1}{|c|}{\textbf{Type of data}} &
  \multicolumn{1}{|c|}{\textbf{Name}} & \multicolumn{1}{|c|}{\textbf{Description}} \\ \hline
  \endhead
  
  \endfoot

  \endlastfoot
2 & INT & N & Number of faces\\ \hline
4 & Pointer & Face1 & Pointer to first face\\ \hline
3 & BOOL & Flag1 & \vtop{\hbox{\strut Orientation flag of first
face.}\hbox{\strut  True indicates face agrees with
surface}}\\ \hline
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &
\vtop{\hbox{\strut .}\hbox{\strut .}} &\\ \hline
2N & Pointer & FaceN & Pointer to last face\\ \hline
1 + 2N & BOOL & FlagN & Orientation flag of last face.\\ \hline
\end{longtable}
